寫套件的時候,我們會用宣告一個物件來存預設值。
但是,有時候我們要全域改設定值的時候。
是不用打開JS改的,類似$.ajaxSetup
<文章列表>
IT人生組文章
--9/19 : 程式設計師的成就感
http://ithelp.ithome.com.tw/question/10127573
--9/18 : 你的職業是甚麼?
http://ithelp.ithome.com.tw/question/10127308
--9/17 : 寫程式的習慣
http://ithelp.ithome.com.tw/question/10127036
--9/16 : 各行各業的名人
http://ithelp.ithome.com.tw/question/10126681
開發技術組文章
--9/19 : jQuery套件開發(四),預設值與設定值的差別。
http://ithelp.ithome.com.tw/question/10127575
--9/18 : jQuery套件開發(三),true false的判斷
http://ithelp.ithome.com.tw/question/10127297
--9/17 : jQuery套件開發(二),jQuery的套件,開發前該了解的事情~
http://ithelp.ithome.com.tw/question/10127033
--9/16 : jQuery套件開發(一),三十天,我想要分享的東西
http://ithelp.ithome.com.tw/question/10126657
有全域變數的套件,怎麼玩?
會有這樣的想法是起因於jQuery的ajax有一個全域方法可以用 – ajaxSetup
這可以直接更改之後request預設值。
這樣的用法的確是獨立於options、methods 、events等的狀況。
這裡提的options、methods 、events 可以參考我的文章這一篇
http://ithelp.ithome.com.tw/question/10127033
而有別於套件的用法是$(selector).pluginName() ;
既然是影響全部套件的東西,自然selector的角色變得不太重要
$.pluginName(do something) //這樣就可以了。
$.pluginName(‘method’, method arguments) ;
$.pluginName(‘option’, option value) ;
這裡解釋一下$(selector).pluginName 跟 $.pluginName的差別在哪裡?
這兩個用法完全是兩回事,只是站在使用者的角度讓這個套件使用更顯得直覺與方便。
透過$() 這個函式(或是說class) 會有jQuery為你寫的許許多多方便的特性
那都是因為$() return的東西是jQuery物件
所以我們常常要把this 用$() 包起來變成 $(this)
因為這樣一來才能享用jQuery帶給我們的方便,不是嗎?
而$.fn.pluginName = function….
這樣的寫法作用是給jquery增加prototype方法。
所以,你的jQuery就有新的特性可以用了。
而$.pluginName = function…卻是截然不同的概念。
這只是因為$是一個物件,你直接在這個物件增加一個特性。
就好像你有一個網站,有很多js function要寫好。
那你會
var site = {} ;
site.getUrl = function…
site.getItem = function…
這兩者沒甚麼差別。
如果你要寫的東西很龐大
你甚至可以作點分類的動作
$.get.Item = function()
$.set.Item = function()
這時候get set就不會用特性來稱呼,會叫作"命名空間"。
了解這些基礎知識之後,寫出來的套件,在操作面上才會跟人家比較像...